/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"CB19AF39-75C7-4EF4-AD0A-2273EAAE9662"}
 * @AllowToRunInFind
 */
function continuar(event) 
{	
	elements.errores.removeAllTabs()
	var res = globals.chequeaVariables()
	if (res[0] == 1)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Error en variables globales : '+res[1],'OK')
		return
	}
	var $tipo_asiento = 8
	if (globals.control_asientos_prov($tipo_asiento,globals.gMesAsientos,globals.gAnioAsientos) == 0 )
	{
		return
	}
	// DEFINE FOUNDSETS
	/** @type {JSFoundSet<db:/contable/asiento_prov_cab>}*/
	var $provisorio = databaseManager.getFoundSet('contable','asiento_prov_cab')
	/** @type {JSFoundSet<db:/infocom/boleta_cabecera>}*/
	var $boleta	    = databaseManager.getFoundSet('infocom','boleta_cabecera')
	var $cols		= ['fecha','documento','error']
	var $errores 	= databaseManager.createEmptyDataSet( 0, $cols )
	
	// BUSCAR en BOLETA CABECERA
	if($boleta.find()  == false)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Ocurrió un error al buscar movimientos','OK')
		return
	}
	
	var $fecha_desde 	= new Date(globals.gAnioAsientos, globals.gMesAsientos-1,1,0,0,0,0)
	var $fecha_hasta 	= new Date(globals.gAnioAsientos, globals.gMesAsientos,0,23,59,59,996)
	var rango 			= utils.dateFormat($fecha_desde,'dd-MM-yyyy') + '...'+ utils.dateFormat($fecha_hasta,'dd-MM-yyyy')
	$boleta.fecha = '#' + rango + '|dd-MM-yyyy'
	
	var found = $boleta.search()
	if (found == 0)
	{
		globals.DIALOGS.showWarningDialog('Aviso','No se encontraron boletas de depósito con esas condiciones','OK')
		return
	}
	databaseManager.setAutoSave(false)
	// POR cada BOLETA
	var $cant = databaseManager.getFoundSetCount($boleta)
	for (var i = 1 ; i <= $cant ; i++)
	{
		var $rcd = $boleta.getRecord(i)
		tipoAsiento_8($rcd , $provisorio , $errores, $tipo_asiento)		
	} // fin for de boleta

	if ($errores.getMaxRowIndex() > 0)
	{
		var $fecha_hoy	= utils.dateFormat(new Date(),'dd-MM-yyyy')
		var $periodo	= 'Desde ' + utils.dateFormat($fecha_desde,'dd-MM-yyyy') + ' hasta '  + utils.dateFormat($fecha_hasta,'dd-MM-yyyy')
		var $titulo		= 'Asiento Depositos - ' + $periodo + ' - Fecha Proceso ' + $fecha_hoy
		globals.crearFormErrores('asiento_deposito_8',$errores,$cols,$titulo)
	}

	databaseManager.startTransaction()
	if (databaseManager.saveData()) 
	{
		databaseManager.setAutoSave(true)
		databaseManager.commitTransaction()
	}
	else
	{
		databaseManager.rollbackTransaction()
		globals.DIALOGS.showWarningDialog('Aviso','Ocurrió un error al intentar grabar los cambios. El proceso está incompleto','OK')
	}
}

/**
 * @param {JSRecord<db:/infocom/boleta_cabecera>} $rcd
 * @param {JSFoundSet<db:/contable/asiento_prov_cab>} $provisorio
 * @param {JSDataSet} $errores
 * @param {Number} $tipo_asiento
 * 
 * @properties={typeid:24,uuid:"714AFCB8-4A78-4980-A7DF-D49B4277768D"}
 */
function tipoAsiento_8($rcd , $provisorio , $errores, $tipo_asiento) 
{	
 
	//  HABER = DEBE  no se compara porque se toma el mismo importe

	// CABECERA ASIENTO
	$provisorio.newRecord()

	$provisorio.moneda 				= 'P'
	$provisorio.moneda_carga 		= 1
	$provisorio.hizo 				= globals.gUsuarioID
	$provisorio.tipo_actualizacion 	= globals.z_conf_asiento_normal
	$provisorio.empresa				= globals.gUservID
	$provisorio.fecha 				= $rcd.fecha
	$provisorio.texto 				= 'Deposito Nro. ' + $rcd.boleta_nro + ' - ' + $rcd.observaciones
	$provisorio.subdiario_id 		= 4 // egresos
	$provisorio.mes					= $rcd.fecha.getMonth()+1
	$provisorio.anio				= $rcd.fecha.getFullYear()
	$provisorio.tipo_asiento_id 	= $tipo_asiento
	$provisorio.total				= $rcd.importe_total
	
	var error
	// DETALLE ASIENTO
	var det = $provisorio.asiento_prov_cab_to_asiento_prov_copia
	
	// ALTA CAJA  (es HABER)
		det.newRecord()
		
		det.columna 	= 'H' 
		det.cuentas_id 	= 999999
		if(gcaja_default_to_cuentas_cyb) // existe relacion
		{
			if(gcaja_default_to_cuentas_cyb.plancta_id == null)
			{
				error = new Array(utils.dateFormat($rcd.fecha,'dd-MM-yyyy'), 'Deposito Nro. ' + $rcd.boleta_nro + ' - ' + $rcd.observaciones, ' Cuenta contable de caja default no cargada en tabla cuentas_cyb')
				$errores.addRow(error)
			}
			else
				det.cuentas_id 	= gcaja_default_to_cuentas_cyb.plancta_id 
		}
		else
		{
			error = new Array(utils.dateFormat($rcd.fecha,'dd-MM-yyyy'), 'Deposito Nro. ' + $rcd.boleta_nro + ' - ' + $rcd.observaciones, ' Error de relacion con caja default y cuentas_cyb')
			$errores.addRow(error)	
		}
		det.importe 	= $rcd.importe_total
		det.numero		= 0
		det.empresa		= globals.gUservID
		det.centro		= 1
		det.division	= 1
		det.leyenda		= 'Caja'  
		det.mes			= $rcd.fecha.getMonth()+1
		det.anio		= $rcd.fecha.getFullYear()  

	// ALTA BANCO  (es DEBE)
		det.newRecord() 
		det.cuentas_id 	= 999999
		det.columna 	= 'D' 
		if ($rcd.boleta_cabecera_to_cuentas_cyb_copia.getSize()>0) 
		{
			if ($rcd.boleta_cabecera_to_cuentas_cyb_copia.plancta_id!=null)
				det.cuentas_id 	= $rcd.boleta_cabecera_to_cuentas_cyb_copia.plancta_id
			else
			{
				error = new Array(utils.dateFormat($rcd.fecha,'dd-MM-yyyy'), 'Deposito Nro. ' + $rcd.boleta_nro + ' - ' + $rcd.observaciones, ' Cuenta contable no cargada en tabla cuentas_cyb codigo=' + $rcd.cuentas_cyb_id)
				$errores.addRow(error) 
			}
			det.leyenda		= $rcd.boleta_cabecera_to_cuentas_cyb_copia.descripcion
		}
		else
		{ 
			error = new Array(utils.dateFormat($rcd.fecha,'dd-MM-yyyy'), 'Deposito Nro. ' + $rcd.boleta_nro + ' - ' + $rcd.observaciones, ' Error en relacion boleta_cabecera y cuentas_cyb')
			$errores.addRow(error)
		}
		det.importe 	= $rcd.importe_total
		det.numero		= 0
		det.empresa		= globals.gUservID
		det.centro		= 1
		det.division	= 1
		det.mes			= $rcd.fecha.getMonth()+1
		det.anio		= $rcd.fecha.getFullYear()
}
